home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Development / Interfaces / QD3DPascalInterfaces / QD3DViewer.p < prev   
Encoding:
Text File  |  1996-11-15  |  8.7 KB  |  238 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DViewer.p
  3.  
  4.      Contains:    Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.0.6
  7.                  Release:    Universal Interfaces 2.1.5d1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DViewer;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DVIEWER__}
  28. {$SETC __QD3DVIEWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DViewerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QD3DGROUP__}
  38. {$I QD3DGroup.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __TYPES__}
  44. {$I Types.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __WINDOWS__}
  47. {$I Windows.p}
  48. {$ENDC}
  49.  
  50. {$PUSH}
  51. {$ALIGN POWER}
  52. {$LibExport+}
  53.  
  54.  
  55. TYPE
  56.     TQ3ViewerObject                        = Ptr;
  57.  
  58. CONST
  59.     kQ3ViewerShowBadge            = $01;
  60.     kQ3ViewerActive                = $02;
  61.     kQ3ViewerControllerVisible    = $04;
  62.     kQ3ViewerDrawFrame            = $08;
  63.     kQ3ViewerDraggingOff        = $10;
  64.     kQ3ViewerButtonCamera        = $20;
  65.     kQ3ViewerButtonTruck        = $40;
  66.     kQ3ViewerButtonOrbit        = $80;
  67.     kQ3ViewerButtonZoom            = $0100;
  68.     kQ3ViewerButtonDolly        = $0200;
  69.     kQ3ViewerDefault            = $02E6;
  70.  
  71.     kQ3ViewerEmpty                = 0;
  72.     kQ3ViewerHasModel            = $01;
  73.  
  74.     gestaltQD3DViewer            = 'q3vc';
  75.     gestaltQD3DViewerNotPresent    = 0;
  76.     gestaltQD3DViewerAvailable    = 1;
  77.  
  78. {
  79. *****************************************************************************
  80.  **                                                                             **
  81.  **                        Creation and destruction                             **
  82.  **                Note that this is not a QuickDraw 3D object                     **
  83.  **                                                                             **
  84.  ****************************************************************************
  85. }
  86. FUNCTION Q3ViewerNew(port: CGrafPtr; VAR rect: Rect; flags: LONGINT): TQ3ViewerObject; C;
  87. FUNCTION Q3ViewerDispose(theViewer: TQ3ViewerObject): OSErr; C;
  88. {
  89. *****************************************************************************
  90.  **                                                                             **
  91.  **                    Functions to attach data to a viewer                     **
  92.  **                                                                             **
  93.  ****************************************************************************
  94. }
  95. FUNCTION Q3ViewerUseFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  96. FUNCTION Q3ViewerUseData(theViewer: TQ3ViewerObject; data: UNIV Ptr; size: LONGINT): OSErr; C;
  97. {
  98. *****************************************************************************
  99.  **                                                                             **
  100.  **        Functions to write data out from the Viewer                             **
  101.  **                                                                             **
  102.  ****************************************************************************
  103. }
  104. FUNCTION Q3ViewerWriteFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  105. FUNCTION Q3ViewerWriteData(theViewer: TQ3ViewerObject; VAR data: UNIV Ptr): LONGINT; C;
  106. {
  107. *****************************************************************************
  108.  **                                                                             **
  109.  **        Use this function to force the Viewer to re-draw                     **
  110.  **                                                                             **
  111.  ****************************************************************************
  112. }
  113. FUNCTION Q3ViewerDraw(theViewer: TQ3ViewerObject): OSErr; C;
  114. {
  115. *****************************************************************************
  116.  **                                                                             **
  117.  **        Function used by the Viewer to filter and handle events                 **
  118.  **                                                                             **
  119.  ****************************************************************************
  120. }
  121. FUNCTION Q3ViewerEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  122. {
  123. *****************************************************************************
  124.  **                                                                             **
  125.  **        This function returns a PICT of the contents of the                  **
  126.  **        Viewer's window.  The application should dispose the PICT.             **
  127.  **                                                                             **
  128.  ****************************************************************************
  129. }
  130. FUNCTION Q3ViewerGetPict(theViewer: TQ3ViewerObject): PicHandle; C;
  131. {
  132. *****************************************************************************
  133.  **                                                                             **
  134.  **                        Calls for dealing with Buttons                         **
  135.  **                                                                             **
  136.  ****************************************************************************
  137. }
  138. FUNCTION Q3ViewerGetButtonRect(theViewer: TQ3ViewerObject; button: LONGINT; VAR rect: Rect): OSErr; C;
  139. FUNCTION Q3ViewerGetCurrentButton(theViewer: TQ3ViewerObject): LONGINT; C;
  140. FUNCTION Q3ViewerSetCurrentButton(theViewer: TQ3ViewerObject; button: LONGINT): OSErr; C;
  141. {
  142. *****************************************************************************
  143.  **                                                                             **
  144.  **        Functions to set/get the group to be displayed by the Viewer.         **
  145.  **                                                                             **
  146.  ****************************************************************************
  147. }
  148. FUNCTION Q3ViewerUseGroup(theViewer: TQ3ViewerObject; group: TQ3GroupObject): OSErr; C;
  149. FUNCTION Q3ViewerGetGroup(theViewer: TQ3ViewerObject): TQ3GroupObject; C;
  150. {
  151. *****************************************************************************
  152.  **                                                                             **
  153.  **        Functions to set/get the color used to clear the window                 **
  154.  **                                                                             **
  155.  ****************************************************************************
  156. }
  157. FUNCTION Q3ViewerSetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  158. FUNCTION Q3ViewerGetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  159. {
  160. *****************************************************************************
  161.  **                                                                             **
  162.  **        Getting/Setting a Viewer's View object.  Disposal is needed.         **
  163.  **                                                                             **
  164.  ****************************************************************************
  165. }
  166. FUNCTION Q3ViewerGetView(theViewer: TQ3ViewerObject): TQ3ViewObject; C;
  167. FUNCTION Q3ViewerRestoreView(theViewer: TQ3ViewerObject): OSErr; C;
  168. {
  169. *****************************************************************************
  170.  **                                                                             **
  171.  **        Calls for setting/getting viewer flags                                 **
  172.  **                                                                             **
  173.  ****************************************************************************
  174. }
  175. FUNCTION Q3ViewerSetFlags(theViewer: TQ3ViewerObject; flags: LONGINT): OSErr; C;
  176. FUNCTION Q3ViewerGetFlags(theViewer: TQ3ViewerObject): LONGINT; C;
  177. {
  178. *****************************************************************************
  179.  **                                                                             **
  180.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  181.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  182.  **        or the current dimensions of the window (if you do a Set).             **
  183.  **                                                                             **
  184.  ****************************************************************************
  185. }
  186. FUNCTION Q3ViewerSetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  187. FUNCTION Q3ViewerGetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  188. FUNCTION Q3ViewerGetDimension(theViewer: TQ3ViewerObject; VAR width: LONGINT; VAR height: LONGINT): OSErr; C;
  189. {
  190. *****************************************************************************
  191.  **                                                                             **
  192.  **                            Port related calls                                 **
  193.  **                                                                             **
  194.  ****************************************************************************
  195. }
  196. FUNCTION Q3ViewerSetPort(theViewer: TQ3ViewerObject; port: CGrafPtr): OSErr; C;
  197. FUNCTION Q3ViewerGetPort(theViewer: TQ3ViewerObject): CGrafPtr; C;
  198. {
  199. *****************************************************************************
  200.  **                                                                             **
  201.  **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  202.  **        to change the cursor according to the cursor position/object under     **
  203.  **        the cursor.                                                             **
  204.  **                                                                             **
  205.  ****************************************************************************
  206. }
  207. FUNCTION Q3ViewerAdjustCursor(theViewer: TQ3ViewerObject; VAR pt: Point): BOOLEAN; C;
  208. {
  209. *****************************************************************************
  210.  **                                                                             **
  211.  **        Returns the state of the viewer.  See the constant defined at the     **
  212.  **        top of this file.                                                     **
  213.  **                                                                             **
  214.  ****************************************************************************
  215. }
  216. FUNCTION Q3ViewerGetState(theViewer: TQ3ViewerObject): LONGINT; C;
  217. {
  218. *****************************************************************************
  219.  **                                                                             **
  220.  **                            Clipboard utilities                                 **
  221.  **                                                                             **
  222.  ****************************************************************************
  223. }
  224. FUNCTION Q3ViewerClear(theViewer: TQ3ViewerObject): OSErr; C;
  225. FUNCTION Q3ViewerCut(theViewer: TQ3ViewerObject): OSErr; C;
  226. FUNCTION Q3ViewerCopy(theViewer: TQ3ViewerObject): OSErr; C;
  227. FUNCTION Q3ViewerPaste(theViewer: TQ3ViewerObject): OSErr; C;
  228. {$ALIGN RESET}
  229. {$POP}
  230.  
  231. {$SETC UsingIncludes := QD3DViewerIncludes}
  232.  
  233. {$ENDC} {__QD3DVIEWER__}
  234.  
  235. {$IFC NOT UsingIncludes}
  236.  END.
  237. {$ENDC}
  238.